package com.cloud.lawcase.api.service;

import com.cloud.lawcase.api.bean.LawCauseInterfaceSearchCriteria;
import com.cloud.lawcase.api.bean.LawCauseItem;
import com.cloud.lawcase.api.entity.TcDicLaw;
import com.cloud.lawcase.api.entity.TcDicLawItem;
import com.cloud.lawcase.api.entity.TcLawClDetail;
import com.cloud.lawcase.api.entity.TcLawRelCauseExcuteType;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

public interface LawCauseInterfaceService {
    /**
     * 分页获取案由信息
     *
     * @param criteria
     * @return
     */
    PageInfo<LawCauseItem> searhCausePageInfo(LawCauseInterfaceSearchCriteria criteria);

    /**
     * 法律概况
     *
     * @return
     */
    Map<String, Object> getInfoGeneral();

    /**
     * 执法依据
     *
     * @return
     */
    List<Map<String, Object>> statCauseExcuteType();

    /**
     * 执法领域
     *
     * @return
     */
    List<Map<String, Object>> getLawDomain();

    /**
     * 法律法规分组
     *
     * @return
     */
    List<Map<String, Object>> getLawCodeGroup();

    /**
     * 处罚事项
     * @param causeCodes
     * @return
     */
    List<TcLawRelCauseExcuteType> listExceuteTypeByCauseCode(List<String> causeCodes);

    /**
     * 自由裁量
     * @param causeCodes
     * @return
     */
    List<TcLawClDetail> listClDetailByCauseCode(List<String> causeCodes);
    
    /**
     * 查询法规信息
     * @param title
     * @return
     */
	List<TcDicLaw> searchLaw(String title, int type);
	
	/**
	 * 查询条目信息
	 * @param lawId
	 * @return
	 */
	List<TcDicLawItem> searchLawItem(long lawId, int type);

    /**
     * code查询id
     * @param causeCodes
     * @return
     */
	List<LawCauseItem> listCasueIDByCauseCode(List<String> causeCodes);
}
